package com.dlc.shop.bean.dto;

import io.swagger.v3.oas.annotations.Hidden;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;

import java.io.Serial;
import java.io.Serializable;
import java.util.List;

/**
 * DTO
 *
 * @author FrozenWatermelon
 * @date 2023-11-09 18:00:43
 */
@Data
public class StockPointSkuDTO implements Serializable {
    @Serial
    private static final long serialVersionUID = 1L;

    @Schema(description = "库存商品关联skuid")
    private Long stockPointSkuId;

    @Schema(description = "库存点id")
    private Long stockPointId;

    @Schema(description = "库存点类型 1仓库 2门店 ")
    private Integer stockPointType;

    @Schema(description = "prodId")
    private Long prodId;

    @Schema(description = "skuid")
    private Long skuId;

    @Schema(description = "sku商品编码")
    private String partyCode;

    @Schema(description = "状态 1:enable, 0:disable, -1:deleted")
    private Integer status;

    @Schema(description = "库存")
    private Integer stock;

    @Schema(description = "商品名称")
    private String spuName;

    @Schema(description = "分类id")
    private Long categoryId;

    @Schema(description = "店铺id")
    private Long shopId;

    @Schema(description = "供应商id")
    private Long supplierId;

    @Schema(description = "仓库类型(0默认仓库，1区域仓库)")
    private Integer type;

    @Schema(description = "入库仓库id")
    private Long inStockPointId;

    @Schema(description = "库存模式")
    private Integer stockMode;

    @Schema(description = "更新时，变化的库存")
    private Integer changeStock;

    @Hidden
    @Schema(description = "库存点id集合")
    private List<Long> stockPointIds;

    @Hidden
    @Schema(description = "prodId集合")
    private List<Long> prodIds;

    @Hidden
    @Schema(description = "skuId集合")
    private List<Long> skuIds;

    @Hidden
    @Schema(description = "不包含skuId集合的集合")
    private List<Long> notInSkuIds;

    @Hidden
    @Schema(description = "分类id集合")
    private List<Long> categoryIds;

    @Hidden
    @Schema(description = "商品类别 0.实物商品 1.虚拟商品 2.组合商品")
    private Integer spuMold;

    @Schema(description = "是否只查询有库存数据(0:否, 1:是)")
    private Integer queryHasStock;

    public StockPointSkuDTO(){
    }

    public StockPointSkuDTO(Long stockPointId, Integer stockPointType, Long prodId, Long skuId, Integer status, Integer type, Integer stockMode) {
        this.stockPointId = stockPointId;
        this.stockPointType = stockPointType;
        this.prodId = prodId;
        this.skuId = skuId;
        this.status = status;
        this.type = type;
        this.stockMode = stockMode;
    }

}
